const gulp = require('gulp'); // gulp 插件
const concat = require('gulp-concat'); //连接
const uglify = require('gulp-uglify'); //压缩js
const cleanCSS = require('gulp-clean-css'); //压缩css
const htmlmin = require('gulp-htmlmin'); //压缩html
const zip = require('gulp-zip'); //压缩成压缩包
const del = require('del') //删除

//js 任务
gulp.task('js', function() {
  // gulp.src 哪些文件，可以传字符串或数组
  return gulp.src(['js/jquery-2.0.3.js','js/jquery-1.11.1.min.js','js/unslider.min.js','js/toleft.js','js/index.js'
    ])
    // 管道  生成
    .pipe(concat('game.js'))
    //dest  destination 目的地 写到地址
    .pipe(gulp.dest('./'))
    // 压缩js
    .pipe(uglify())
    // 生成另外一个地址
    .pipe(gulp.dest('dist/'))
})
// 压缩css任务
gulp.task('css', function() {
  // gulp.src 哪些文件，可以传字符串或数组
  return gulp.src('index.css')
    // 压缩css
    .pipe(cleanCSS('index.css'))
    // 生成目录
    .pipe(gulp.dest('dist/'))
})
// html压缩
gulp.task('html', function() {
  return gulp.src('index.html')
    .pipe(htmlmin({ collapseWhitespace: true }))
    .pipe(gulp.dest('dist/'))
})
// 文件拷贝
gulp.task('resources', function() {
  return gulp.src(['images/*', '!images/其它图片', 'mp3/**'], { base: './' })
    .pipe(gulp.dest('dist/'))
})
// 发布任务
gulp.task('dist', ['build', 'resources'], function() {
  return gulp.src('dist/**')
    .pipe(zip('找不同.zip'))
    .pipe(gulp.dest('./'))
})
// 监视
gulp.task('watch', function() {
  // 前面要监视的文件  监视文件发生变化时要执行的任务
  gulp.watch('js/*', ['js'])
  gulp.watch('index.css', ['css'])
  gulp.watch('index.html', ['html'])
})

// 删除功能
gulp.task('clean', function (cb) {
  del([
    'dist/',
    '找不同.zip',
  ], cb);
});

gulp.task('build', ['js', 'css', 'html','resources'])
gulp.task('default', ['build', 'watch'])
